/**
 * 工具函数
 */


/* 手机号验证 */

function isTel(str) {
    return !/^13[0-9]{9}$|14[0-9]{9}|15[0-9]{9}$|18[0-9]{9}$|17[0-9]{9}$/.test(str)
}

/* 密码验证 */

function isPwd(str) {
    return !/^[a-zA-Z0-9_-]{4,10}$/.test(str)
}


/* 失败提示盒子 */

function show(a, b) {
    //创建一个标签
    const div = document.createElement('div');
    div.classList.add('error', 'dpflex');
    div.innerHTML = `
    <i class='iconfont icon-${a} f40'><i>
    `;

    // 在创建一个span标签
    const span = document.createElement('span');
    span.innerHTML = b;
    div.append(span);
    document.body.append(div);

    // 2s之后消失
    setTimeout(()=>div.remove(), 2000)
}

/* 主页下面的选项卡 */
function taps(i) {

    // 创建选项卡
    const div = document.createElement('div');

    // 添加类名
    div.className = 'taps';

    div.innerHTML = `
    <a href="./home.html">
            <i class="iconfont icon-home"></i>
            <span>首页</span>
        </a>
        <a href="./run.html">
            <i class="iconfont icon-sport"></i>
            <span>运动</span>
        </a>
        <a href="./mine.html">
            <i class="iconfont icon-mine"></i>
            <span>我的</span>
        </a>
    `
    // 将div插入到页面中

    document.body.append(div);
    div.children[i].classList.add('bgc');

}

// 运动页上面的选项卡
function sportTop(i) {
    // 创建选项卡
    const div = document.createElement('div');

    // 添加类名
    div.className = 'sportTops';

    div.innerHTML = `
    <a href="./run.html">
            <span>跑步</span>
        </a>
        <a href="./riding.html">
            <span>骑行</span>
        </a>
        <a href="./course.html">
            <span>课程中心</span>
        </a>
    `
    // 将div插入到页面中
    document.body.append(div);
    div.children[i].classList.add('special');
}
/* 补0 */
function fillZero(i) {
    return i >= 10 ? i : `0${i}`
}

/* 时间处理 */
function time(i) {
    let h = Math.floor(i / 60 / 60);
    let m = Math.floor(i / 60) % 60;
    let s = Math.floor(i % 60);

    return [h, m, s].map(function (item) {
        return fillZero(item);
    }).join(':')
}

// 根据经纬度计算距离
function distance(startPoint, curPoint) {
    
    let lat1=startPoint.lat
    let lng1=startPoint.lng

    let lat2=curPoint.lat
    let lng2=curPoint.lng

    var radLat1 = lat1 * Math.PI / 180.0;
    var radLat2 = lat2 * Math.PI / 180.0;
    var a = radLat1 - radLat2;
    var b = lng1 * Math.PI / 180.0 - lng2 * Math.PI / 180.0;
    var s = 2 * Math.asin(Math.sqrt(Math.pow(Math.sin(a / 2), 2) + Math.cos(radLat1) * Math.cos(radLat2) * Math.pow(Math.sin(b / 2), 2)));
    s = s * 6378.137;
    s = Math.round(s * 10000) / 10000;
    return s.toFixed(2) // 单位千米
}

// 导航守卫 
function navGuard(){
    let tmp=localStorage.getItem('userId')

    if(!tmp){
        location.href='login.html'
    }
}

// 定义统一接口
window.url = 'http://139.9.177.51:8099' 



/* 暴露方法 */
window.utils = {
    /* es6的写法 属性名等于属性值简写 */
    isTel,
    isPwd,
    show,
    taps,
    fillZero,
    sportTop,
    time,
    distance,
    navGuard
}